﻿using System;
using System.Collections.Generic;
using System.IO;
using System.IO.Compression;
using System.Linq;
using System.Web;
using System.Net;

namespace ProntuarioEletronico.Repositorio
{
    public class RotinaCRM
    {

        #region Baixar Base de dados
        public void BaixarBaseCRM()
        {
           string url = "ftp://ftp.datasus.gov.br/cnes/REGCRMBRASIL201310.ZIP";
           string pastaDestino = "BaseCRM/base.zip";
           WebClient cliente = new WebClient();
           cliente.DownloadFile(url, pastaDestino);
     }
        #endregion



        #region Metodo para descompactar base do CRM
        private void DescompactarArquivo(string ArquivoOrigem, string ArquivoDestino)
        {
            
            //Cria uma entrada Stream do Arquivo de Origem para descompactação
            FileStream Origem = new FileStream(ArquivoOrigem, FileMode.Open, FileAccess.Read);

            //Cria a saida do  arquivo stram, aqui é o arquivo de destino
            FileStream Destino = new FileStream(ArquivoDestino, FileMode.Create, FileAccess.Write);

            //Os bytes serão processados através de um decompressor de stream (GZipStream)

            GZipStream Descompactado = new GZipStream(Origem, CompressionMode.Decompress, true);

            //efetua a leitura dos bytes de um arquivo para o outro.
            const int tamanhoBloco = 4096;
            byte[] buffer = new byte[tamanhoBloco];
            int bytesLidos;

            do
            {
                bytesLidos = Descompactado.Read(buffer, 0, tamanhoBloco);

                if (bytesLidos == 0)

                    break;

                Destino.Write(buffer, 0, bytesLidos);

            } while (true);

            //Fecha todos os streams
            Origem.Close();
            Descompactado.Close();
            Destino.Close();
        }
        #endregion

    }
}